#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5,M=1e7+5;
int n,m,id[N],a[N],ans,tr[M][2],fa[M],siz[M],mx[M],ed[M],o=1,top,z[N];
string x[N];
bool cmp(int i,int j)
{
	return a[i]>a[j];
}
void cr(string x,int siz1)
{
	int now=1,lst=o,bj=0;
	for(int i=0;i<siz1;++i)
	{
		if(!tr[now][x[i]-'0'])
		{
			++o;
			tr[now][x[i]-'0']=o;
			fa[o]=now;
		}
		now=tr[now][x[i]-'0'];
		if(ed[now])
		{
			++ans;
			++o;
			bj=1;
			tr[now][0]=o;
			fa[o]=now;
			++o;
			tr[now][1]=o;
			fa[o]=now;
			siz[tr[now][1]]=1;
			siz[tr[now][0]]=1;
			ed[tr[now][0]]=ed[tr[now][1]]=1;
			ed[now]=0;
			bj=1;
			break;
		 } 
	}
	if(!bj&&lst!=o) 
		ed[now]=1;
	ans+=siz[now];
	while(lst==o)
	{
		if(ed[now])
		{
			++ans;
			++o;
			tr[now][0]=o;
			fa[o]=now;
			++o;
			tr[now][1]=o;
			fa[o]=now;
			siz[tr[now][1]]=1;
			siz[tr[now][0]]=1;
			ed[tr[now][0]]=ed[tr[now][1]]=1;
			ed[now]=0;
			break;
		 }
		if(!tr[now][mx[now]])
		{
			++o; 
			tr[now][mx[now]]=o;
			fa[o]=now;
			siz[o]=ed[o]=1;
			break;
		 } 
		 now=tr[now][mx[now]];
	}
	while(now)
	{
		if(siz[tr[now][0]]>siz[tr[now][1]])
			mx[now]=1,siz[now]=siz[tr[now][1]]+1;
		else
			mx[now]=0,siz[now]=siz[tr[now][0]]+1;
		now=fa[now];
	}
}
int main()
{
	freopen("id.in","r",stdin);
	freopen("id.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;++i)
	{
		cin>>x[i];
		a[i]=x[i].size();
		id[i]=i;
	}
	sort(id+1,id+n+1,cmp);
	for(int i=1;i<=n;++i)
		cr(x[id[i]],a[id[i]]);
	cout<<ans<<'\n';
	return 0;
}
